home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -in_the_mag- / reader_requests / scilab / demos / misc / point.dem < prev   
Text File  |  1999-09-16  |  3KB  |  119 lines

  1. mode(1)
  2. //
  3. //                    -----------------------------
  4. //
  5. //                    BOUCLE  DE  POINTAGE  DE  FIN
  6. //
  7. //                    -----------------------------
  8. //
  9.  
  10. // constants
  11. // -------------------------
  12.    tr=186.d-6; gb=6000; g1=0.55; tau=6.d-4; g2=0.02; g4=26;
  13.     r=3      ; l=6.d-3; ga=100 ; kr=17.d-3; j=1.d-7; c=0.05;
  14.    g5=0.07   ; g=0.27;
  15. //
  16.    s=poly(0,'s');
  17.    halt()
  18. //
  19. // systeme 1  ->  feedback le plus interne
  20. // ---------
  21.    h1=(1/(r+l*s)*ga*g)/.r
  22.    halt()
  23. //
  24. // systeme 2  ->  deuxieme feedback
  25. // ---------
  26.    h2=(h1*kr*(1/(c+j*s*s)))/.(g4*g5*s)
  27.    halt()
  28.  
  29. //
  30. // systeme 3  ->  premier feedback
  31. // ---------
  32.    h3=(g1+g2/(tau*s))*gb
  33.    halt()
  34. //
  35. // systeme sans le retard
  36. // ----------------------
  37.    h=2*h2*h3,
  38.  
  39. // definition du systeme lineaire
  40. // ------------------------------
  41.    h=syslin('c',h);
  42.    halt()
  43. //
  44. // comparaison avec le resultat donne
  45. // ----------------------------------
  46.    hc=(2*ga/(1+g*ga)*kr*gb*g*(g1*tau*s+g2)) ...
  47.       /(j*l*tau*s^4/(1+g*ga)+j*r*tau*s^3+  ...
  48.        tau*s*s*(ga/(1+g*ga)*g4*g5*kr*g+l*c/(1+g*ga))+r*c*tau*s);
  49.    hc=syslin('c',hc);
  50.    h/hc
  51.    halt()
  52. //
  53. // reponse frequentielle
  54. // ---------------------
  55.    omeg=exp(log(10)*(-3:0.05:3));
  56.    rep_freq=exp(-tr*omeg*%i*2*%pi).*repfreq(h,omeg);
  57.    bode(omeg,rep_freq);halt()
  58.    halt();xbasc();
  59.    black(omeg,rep_freq);
  60.    halt()
  61. //
  62. // representation de la partie lineaire
  63. // ------------------------------------
  64.    sst=tf2ss(syslin('c',h(2)/h(3)))
  65.    [a,b,c,d]=sst(2:5);
  66.    halt()
  67. //
  68. // On place devant le retard un bloqueur
  69. // d'ordre 0 et de periode td
  70. // -------------------------------------------------------
  71.    td = tr/10;
  72. //
  73. // discretisation du systeme lineaire
  74. // ----------------------------------
  75.    m=[a,b;0*b',0]*td
  76.    m=exp(m)
  77.    [nl,nc]=size(a);
  78.    ad=m(1:nl,1:nl); bd=m(1:nl,nl+1); cd=c;
  79.    halt()
  80. //
  81. // definition de la macro simulant le systeme en boucle fermee
  82. // -----------------------------------------------------------
  83.    deff('[y,x]=ddls_sim(a,b,c,tr,td,u,x)',[
  84.         '[lhs,rhs]=argn(0);if rhs=6 then [n,n]=size(a);x=0*ones(n,1),end'
  85.         't0=int(tr/td)+1'
  86.         '[nl,nc]=size(u),np=nl*nc,u=[0*ones(1,t0),matrix(u,1,np)]'
  87.         'y(1,t0)=0'
  88.         'for k=1:np,e=u(k)-y(k),x=a*x+b*e,y(t0+k)=c*x,end'
  89.         'y=y(t0+1:t0+np)' ]);
  90.    halt()
  91. //
  92. // appel pour un echelon de 100mrd
  93. // -------------------------------
  94.    e=100.d-6*ones(1,400);comp(ddls_sim);
  95.    [tetae,x]=ddls_sim(ad,bd,c,tr,td,e);
  96.    xbasc();
  97.    plot2d1("onn",(1:400)'*td,[e;tetae]');
  98.    xtitle(['step  100mrd';'response']);
  99.    halt()
  100. //
  101. // appel pour une entree sinusoidale 10mrd 100hz
  102. // ---------------------------------------------
  103.    s1=1.d-5*sin(200*%pi*(1:600)*td);
  104.    [tetas1,x]=ddls_sim(ad,bd,c,tr,td,s1);
  105.    xbasc();
  106.    plot2d1("onn",(1:600)'*td,[s1;tetas1]');
  107.    xtitle(['sinusoidale input 10mrd 100hz';'response']);
  108.    halt()
  109. //
  110. // appel pour une entree sinusoidale 3mrd 300hz
  111. // ---------------------------------------------
  112.    s2=3.d-5*sin(600*%pi*(1:600)*td);
  113.    [tetas2,x]=ddls_sim(ad,bd,c,tr,td,s2);
  114.    xbasc();
  115.    plot2d1("onn",(1:600)'*td,[s2;tetas2]');
  116.    xtitle(['sinus input 3mrd 300hz';'response']);
  117.  
  118. //
  119.